package com.example.binary;


/**
 *1.整数部分转二进制：不断除以2，直到商为0为止，
 *    然后将每个步骤的余数倒序排列，得到二进制整数部分。
 *2.小数部分转二进制：不断乘以2，每次取整数部分作为二进制的一位，
 *    然后将小数部分保留部分再次乘以2，重复这个过程直到小数部分为0或者达到所需的精度。
 * 将double类型的5.5转化为2进制
 * 整数部分
 *  5 ÷ 2 = 2  ......余1
 *  2 ÷ 2 = 1  ......余0
 *  1 ÷ 2 = 0  ......余1
 * 小数部分
 *  0.5 × 2 ......1
 *  5.5的二进制就是101.1
 *  结论：小数末尾是5才能精确存储成为2进制
 */
public class BinaryDouble {

    public static void main(String[] args) {
        System.out.println(0.1 + 0.2);
        System.out.println(0.5 + 0.25);
        String binary = DecimalToBinary.decimalToBinary(0.1);
        String binary2 = DecimalToBinary.decimalToBinary(0.2);
        String binary3 = DecimalToBinary.decimalToBinary(0.5);
        String binary4 = DecimalToBinary.decimalToBinary(0.625);
        System.out.println("0.1的二进制"+binary);
        System.out.println("0.2的二进制"+binary2);
        System.out.println("0.5的二进制"+binary3);
        System.out.println("0.625的二进制"+binary4);
    }

}
